inspector: Make rows activatable
authorMatthias Clasen <mclasen@redhat.com>
Fri, 12 Apr 2019 02:06:16 +0000 (22:06 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 12 Apr 2019 02:06:16 +0000 (22:06 -0400)
Rows containing just a switch should be activatable,
and toggle the switch.

gtk/inspector/visual.c
gtk/inspector/visual.ui

index 7abd300098240929e60f3ce086e59107f2e0ef97..ce8f1dbe73f0f6a4b54fbd54294aa2f6e909789b 100644 (file)
@@ -70,6 +70,11 @@ struct _GtkInspectorVisualPrivate
   GtkAdjustment *cursor_size_adjustment;
 
   GtkWidget *debug_box;
+  GtkWidget *fps_switch;
+  GtkWidget *updates_switch;
+  GtkWidget *baselines_switch;
+  GtkWidget *layout_switch;
+  GtkWidget *resize_switch;
 
   GtkWidget *misc_box;
   GtkWidget *touchscreen_switch;
@@ -839,6 +844,58 @@ keynav_failed (GtkWidget *widget, GtkDirectionType direction, GtkInspectorVisual
   return FALSE;
 }
 
+static void
+row_activated (GtkListBox         *box,
+               GtkListBoxRow      *row,
+               GtkInspectorVisual *vis)
+{
+  if (gtk_widget_is_ancestor (vis->priv->dark_switch, GTK_WIDGET (row)))
+    {
+      GtkSwitch *sw = GTK_SWITCH (vis->priv->dark_switch);
+      gtk_switch_set_active (sw, !gtk_switch_get_active (sw));
+    }
+  else if (gtk_widget_is_ancestor (vis->priv->animation_switch, GTK_WIDGET (row)))
+    {
+      GtkSwitch *sw = GTK_SWITCH (vis->priv->animation_switch);
+      gtk_switch_set_active (sw, !gtk_switch_get_active (sw));
+    }
+  else if (gtk_widget_is_ancestor (vis->priv->fps_switch, GTK_WIDGET (row)))
+    {
+      GtkSwitch *sw = GTK_SWITCH (vis->priv->fps_switch);
+      gtk_switch_set_active (sw, !gtk_switch_get_active (sw));
+    }
+  else if (gtk_widget_is_ancestor (vis->priv->updates_switch, GTK_WIDGET (row)))
+    {
+      GtkSwitch *sw = GTK_SWITCH (vis->priv->updates_switch);
+      gtk_switch_set_active (sw, !gtk_switch_get_active (sw));
+    }
+  else if (gtk_widget_is_ancestor (vis->priv->baselines_switch, GTK_WIDGET (row)))
+    {
+      GtkSwitch *sw = GTK_SWITCH (vis->priv->baselines_switch);
+      gtk_switch_set_active (sw, !gtk_switch_get_active (sw));
+    }
+  else if (gtk_widget_is_ancestor (vis->priv->layout_switch, GTK_WIDGET (row)))
+    {
+      GtkSwitch *sw = GTK_SWITCH (vis->priv->layout_switch);
+      gtk_switch_set_active (sw, !gtk_switch_get_active (sw));
+    }
+  else if (gtk_widget_is_ancestor (vis->priv->resize_switch, GTK_WIDGET (row)))
+    {
+      GtkSwitch *sw = GTK_SWITCH (vis->priv->resize_switch);
+      gtk_switch_set_active (sw, !gtk_switch_get_active (sw));
+    }
+  else if (gtk_widget_is_ancestor (vis->priv->touchscreen_switch, GTK_WIDGET (row)))
+    {
+      GtkSwitch *sw = GTK_SWITCH (vis->priv->touchscreen_switch);
+      gtk_switch_set_active (sw, !gtk_switch_get_active (sw));
+    }
+  else if (gtk_widget_is_ancestor (vis->priv->software_gl_switch, GTK_WIDGET (row)))
+    {
+      GtkSwitch *sw = GTK_SWITCH (vis->priv->software_gl_switch);
+      gtk_switch_set_active (sw, !gtk_switch_get_active (sw));
+    }
+}
+
 static void
 init_gl (GtkInspectorVisual *vis)
 {
@@ -910,6 +967,9 @@ gtk_inspector_visual_constructed (GObject *object)
    g_signal_connect (vis->priv->visual_box, "keynav-failed", G_CALLBACK (keynav_failed), vis);
    g_signal_connect (vis->priv->debug_box, "keynav-failed", G_CALLBACK (keynav_failed), vis);
    g_signal_connect (vis->priv->misc_box, "keynav-failed", G_CALLBACK (keynav_failed), vis);
+   g_signal_connect (vis->priv->visual_box, "row-activated", G_CALLBACK (row_activated), vis);
+   g_signal_connect (vis->priv->debug_box, "row-activated", G_CALLBACK (row_activated), vis);
+   g_signal_connect (vis->priv->misc_box, "row-activated", G_CALLBACK (row_activated), vis);
 }
 
 static void
@@ -958,6 +1018,11 @@ gtk_inspector_visual_class_init (GtkInspectorVisualClass *klass)
   gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorVisual, software_gl_switch);
   gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorVisual, font_scale_entry);
   gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorVisual, font_scale_adjustment);
+  gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorVisual, fps_switch);
+  gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorVisual, updates_switch);
+  gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorVisual, baselines_switch);
+  gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorVisual, layout_switch);
+  gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorVisual, resize_switch);
 
   gtk_widget_class_bind_template_callback (widget_class, fps_activate);
   gtk_widget_class_bind_template_callback (widget_class, updates_activate);
index d86682a63d5e7b5c716be0e062954cee617cd8ac..c50163e353f1ca0c05b614153318aa568e875a5a 100644 (file)
@@ -67,7 +67,7 @@
                 </child>
                 <child>
                   <object class="GtkListBoxRow">
-                    <property name="activatable">0</property>
+                    <property name="activatable">1</property>
                     <child>
                       <object class="GtkBox">
                         <property name="margin">10</property>
                 </child>
                 <child>
                   <object class="GtkListBoxRow">
-                    <property name="activatable">0</property>
+                    <property name="activatable">1</property>
                     <child>
                       <object class="GtkBox">
                         <property name="margin">10</property>
                 <property name="selection-mode">none</property>
                 <child>
                   <object class="GtkListBoxRow">
-                    <property name="activatable">0</property>
+                    <property name="activatable">1</property>
                     <child>
                       <object class="GtkBox">
                         <property name="margin">10</property>
                 </child>
                 <child>
                   <object class="GtkListBoxRow">
-                    <property name="activatable">0</property>
+                    <property name="activatable">1</property>
                     <child>
                       <object class="GtkBox">
                         <property name="margin">10</property>
                           </object>
                         </child>
                         <child>
-                          <object class="GtkSwitch">
+                          <object class="GtkSwitch" id="updates_switch">
                             <property name="halign">end</property>
                             <property name="valign">baseline</property>
                             <property name="hexpand">1</property>
                 </child>
                 <child>
                   <object class="GtkListBoxRow">
-                    <property name="activatable">0</property>
+                    <property name="activatable">1</property>
                     <child>
                       <object class="GtkBox">
                         <property name="margin">10</property>
                           </object>
                         </child>
                         <child>
-                          <object class="GtkSwitch">
+                          <object class="GtkSwitch" id="baselines_switch">
                             <property name="halign">end</property>
                             <property name="valign">baseline</property>
                             <property name="hexpand">1</property>
                 </child>
                 <child>
                   <object class="GtkListBoxRow">
-                    <property name="activatable">0</property>
+                    <property name="activatable">1</property>
                     <child>
                       <object class="GtkBox">
                         <property name="margin">10</property>
                           </object>
                         </child>
                         <child>
-                          <object class="GtkSwitch">
+                          <object class="GtkSwitch" id="layout_switch">
                             <property name="halign">end</property>
                             <property name="valign">baseline</property>
                             <property name="hexpand">1</property>
                 </child>
                 <child>
                   <object class="GtkListBoxRow">
-                    <property name="activatable">0</property>
+                    <property name="activatable">1</property>
                     <child>
                       <object class="GtkBox">
                         <property name="margin">10</property>
                         <property name="spacing">40</property>
                         <child>
-                          <object class="GtkLabel">
+                          <object class="GtkLabel" id="resize_label">
                             <property name="label" translatable="yes">Show Widget Resizes</property>
                             <property name="halign">start</property>
                             <property name="valign">baseline</property>
                           </object>
                         </child>
                         <child>
-                          <object class="GtkSwitch" id="widget_resize_switch">
+                          <object class="GtkSwitch" id="resize_switch">
                             <property name="halign">end</property>
                             <property name="valign">baseline</property>
                             <property name="hexpand">1</property>
                 <property name="selection-mode">none</property>
                 <child>
                   <object class="GtkListBoxRow">
-                    <property name="activatable">0</property>
+                    <property name="activatable">1</property>
                     <child>
                       <object class="GtkBox">
                         <property name="margin">10</property>
                 </child>
                 <child>
                   <object class="GtkListBoxRow">
-                    <property name="activatable">0</property>
+                    <property name="activatable">1</property>
                     <child>
                       <object class="GtkBox">
                         <property name="margin">10</property>
       <widget name="updates_label"/>
       <widget name="baselines_label"/>
       <widget name="layout_label"/>
+      <widget name="resize_label"/>
       <widget name="touchscreen_label"/>
       <widget name="software_gl_label"/>
     </widgets>